﻿using System.Collections.Generic;
using System.Runtime.Serialization;

namespace QuailDashboard.View.Web
{
    [DataContract]
    public class TestRunOptions
    {
        /// <summary>
        /// Gets or sets the name of the test assemblies to execute
        /// </summary>
        [DataMember]
        public List<string> TestAssemblies
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the name of test methods (include class & namespace) to execute
        /// </summary>
        [DataMember]
        public List<string> TestMethods
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the list of test classes [classes with the TestFixture attribute] to execute
        /// </summary>
        [DataMember]
        public List<string> TestClasses
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the Quail environment to use
        /// </summary>
        [DataMember]
        public string DefaultEnvironment
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the RemoteControlHost to use
        /// </summary>
        [DataMember]
        public string RemoteControlHost
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the remote control port to use
        /// </summary>
        [DataMember]
        public int RemoteControlPort
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the custom overrides (eg: ConnectionString, EmployerUrl, etc) from the defaults for the environment
        /// </summary>
        [DataMember]
        public Dictionary<string, string> CustomOverrides
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets a value indicating whether to replace the default environment settings with those provided in CustomOverrides property
        /// </summary>
        [DataMember]
        public bool ReplaceEnvironmentSettingsWithOverrides
        {
            get; set;
        }

        /// <summary>
        /// Gets or sets the entire config file contents to use
        /// </summary>
        [DataMember]
        public string CompleteConfigFileContents
        {
            get;
            set;
        }
    }
}
